package com.itlong.cloud.property.dao;

import com.itlong.cloud.POJO.VO.property.PropertyInspectOperateVO;
import com.itlong.cloud.POJO.VO.property.PropertyInspectReportBasicDataVO;
import com.itlong.cloud.POJO.VO.property.PropertyInspectReportCountVO;
import com.itlong.cloud.POJO.VO.property.PropertyInspectStatisticsBasicDataVO;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * <desc>
 *      物业-巡检操作持久层接口
 * </desc>
 *
 * @createDate 2019/12/26
 */
@Mapper
@Repository
public interface IPropertyInspectOperateDao {

    /**
     * <desc>
     *      查询历史数据列表
     * </desc>
     *
     * @return 列表数据
     * @author wangzhi
     * @createDate 2019/12/26
     */
    List<PropertyInspectOperateVO> getHistoricalDataList(Map<String, Object> params);

    /**
     * <desc>
     *      查询历史数据总记录数
     * </desc>
     *
     * @return 总记录数
     * @author wangzhi
     * @createDate 2019/12/26
     */
    Integer getHistoricalDataCount(Map<String, Object> params);

    /**
     * <desc>
     *      查询巡检报告原始数据
     * </desc>
     *
     * @return 原始数据列表
     * @author wangzhi
     * @createDate 2019/12/30
     */
    List<PropertyInspectReportBasicDataVO> getReportBasicDataList(Map<String, Object> params);

    /**
     * <desc>
     *      查询巡检报告分组计数
     * </desc>
     *
     * @return 巡检报告分组计数
     * @author wangzhi
     * @createDate 2019/12/31
     */
    List<PropertyInspectReportCountVO> getReportCountList(Map<String, Object> params);

    /**
     * <desc>
     *      查询统计数据信息原始数据
     * </desc>
     *
     * @return 原始数据列表
     * @author wangzhi
     * @createDate 2020/01/02
     */
    List<PropertyInspectStatisticsBasicDataVO> getStatisticsBasicDataList(Map<String, Object> params);

    /**
     * <desc>
     *      查询巡检记录统计数据对应次数
     * </desc>
     *
     * @return 巡检记录统计数据对应次数列表
     * @author wangzhi
     * @createDate 2020/01/02
     */
    List<PropertyInspectReportCountVO> getStatisticsDataCountList(Map<String, Object> params);

    /**
     * <desc>
     *      查询巡检记录每一天的总次数
     * </desc>
     *
     * @return 巡检记录每一天的总次数
     * @author wangzhi
     * @createDate 2020/01/06
     */
    List<PropertyInspectReportCountVO> getInspectDataDayCount(Map<String, Object> params);

    /**
     * <desc>
     *      报警数据列表查询
     * </desc>
     *
     * @return 报警数据列表
     * @author wangzhi
     * @createDate 2020/01/07
     */
    List<PropertyInspectOperateVO> getAlarmPage(Map<String, Object> params);

    /**
     * <desc>
     *      查询报警数据总记录数
     * </desc>
     *
     * @return 报警数据总记录数
     * @author wangzhi
     * @createDate 2020/01/07
     */
    Integer getAlarmCount(Map<String, Object> params);
}
